﻿using Persistencia;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Dlls
{
    public class EstoqueDLL
    {
        private Context context;

        public EstoqueDLL() 
        {
            context = new Context();
        }

        public IEnumerable<Estoque> Listar()
        {
            return (from o in context.Estoques select o).ToList();
        }

        public Estoque ObterInfoProdutoDoEstoquePorId(int codigoProduto) 
        {
            var estoque = context.Estoques.SingleOrDefault(e => e.CodProduto == codigoProduto);
            return estoque;
        }

        public void Insert(Estoque estoque) 
        {
            context.Estoques.InsertOnSubmit(estoque);
            context.SubmitChanges();
        }

        public void Update(int codProduto, Estoque estoque)
        {
            Estoque est = context.Estoques.SingleOrDefault(e => e.CodProduto == codProduto);
            est.ValorVenda = estoque.ValorVenda;
            est.QuantidadeEstoque = estoque.QuantidadeEstoque;
            context.SubmitChanges();

        }
        public void BaixarEstoque(int CodProduto,decimal QtdAtualizar)
        {
            Estoque est = context.Estoques.Single(e => e.CodProduto == CodProduto);
            est.QuantidadeEstoque = est.QuantidadeEstoque - QtdAtualizar;
            context.SubmitChanges();
        }
        public void AcrescentarEstoque(int CodProduto, decimal QtdAtualizar)
        {
            Estoque est = context.Estoques.Single(e => e.CodProduto == CodProduto);
            est.QuantidadeEstoque = est.QuantidadeEstoque + QtdAtualizar;
            context.SubmitChanges();
        }

        public int getLastInsertID() {
            var nextId = context.Produtos.Max(x => x.Codigo);
            return nextId;
        }
        public Estoque GetEstoque(int CodProduto)
        {
            return context.Estoques.SingleOrDefault(e => e.CodProduto == CodProduto);
        }
    }
}
